print("Is is a lua loop test!!!\n")

print("while loop test:\n")
g_wIndex = 10
while(g_wIndex>0)
do
    print(g_wIndex)
    g_wIndex = g_wIndex - 1
end


--[[
    for var=exp1,exp2,exp3
    do
        exp4
    end

    1.  var=exp1,为循环变量赋值
    2.  exp2,当var的值等于exp2返回的值时结束（这种表述不严谨，可以暂时这么理解。
        正确表述为：如果循环步长正，则当exp1>exp2时结束；反之，如果步长为负，则当exp1<exp2时结束）
    3.  exp3返回循环的步长可以不填，默认为1
    4.  exp1,exp2,exp3为一次性求值，只会在循环开始时执行一次，之后不再执行
    5.  当循环的条件会造成死循环时，lua将不会执行（新版特性？）

    --]]
print("for loop test:\n")
for l_fIndex=10,1,-1
do
    print(l_fIndex)
end


--[[
    for index,value in pairs(array)
    do
        exp1
    end
    1.  和其他语言中的for in循环和foreach循环功能一致
    2.  此例将array通过迭代器得到索引和值，index和value
    

    
    --]]
print("fori loop test:\n")

array = {"cat","dog","duck","lion","tiger","bird","fish"}
for index,value in ipairs(array) do
    print(index,value)
end

--[[
    repeat
        exp1
    until(condiction)
    --]]

print("repeat...until test:\n")
g_rIndex = 10
repeat
    print(g_rIndex)
    g_rIndex = g_rIndex - 1
until(g_rIndex<=0)

--[[
    Summary:
    1.  Lua支持的循环和一般的OOP语言一致
    2.  使用Lua循环时要注意变量的作用阈
    
    --]]

